loggercc
集成日志显示、存档、作用域、debug多功能一体,开箱即用的日志模块。
特性
示例
const logger = require('loggercc');
if (process.env.NODE === 'production') {
logger.production()
}
logger.log('hellow log')
logger.success('hellow success')
logger.warn({ a: 1 })
logger.error(new Error(''))
logger.success('888')
Install
npm install loggercc
开发环境配置
开发环境下默认仅显示日志,不存盘。通过logger.development()配置覆盖默认行为
logger.development(options)
默认配置
logger.development({
"log": {
"show": true,
"save": false,
"filename": "log.log"
},
"success": {
"show": true,
"save": false,
"filename": "success.log"
},
"warn": {
"show": true,
"save": false,
"filename": "warning.log"
},
"error": {
"show": true,
"save": false,
"filename": "error.log"
}
})
生产环境配置
生产环境下默认不显示日志,也不存盘。通过logger.production()配置开启日志存盘功能。
logger.production(options)
默认配置
logger.production({
"log": {
"save": false,
"filename": "log.log"
},
"success": {
"save": false,
"filename": "success.log"
},
"warn": {
"save": true,
"filename": "warning.log"
},
"error": {
"save": true,
"filename": "error.log"
},
})
自定义显示和存储格式
在loggercc中可以很方便的定制日志显示格式和存储格式,在自定义配置函数中绑定了一些常用日志属性,帮助快速合成日志格式。
可用日志属性如下:
-
this.getDate()
Function 生成日志时间函数
-
this.parameter(argv)
Function argv参数处理
-
this.pid
String 进程id
-
this.hostname
String 主机名称
-
this.type
String 日志类型
logger.development({
"success": {
"save": true,
show(argv) {
console.log(`\x1b[32m😊 ${this.type} [${this.getDate()}] \x1b[39m`, ...argv)
}
},
"warn": {
show(argv) {
console.log(`\x1b[32m🐷 ${this.type} [${this.getDate()}] \x1b[39m`, ...argv)
},
save(argv) {
return JSON.stringify({
date: this.getDate(),
type: this.type,
pid: this.pid,
hostname: this.hostname,
argv
})
}
},
"error": {
save(argv) {
return `[${this.getDate()}] ${this.type} ${this.pid} ${this.hostname} ${argv}`
}
}
})
日志作用域
日志作用域的使用方法与debug模块类似,区别如下:
-
debug默认不显示log,loggercc默认显示log,通过logger.production()切换到生产环境后关闭日志。
-
debug使用“debug”作为环境变量名,loggercc使用“logger”作为环境变量名。
-
debug的环境变量值支持模糊匹配,loggercc不支持模糊匹配,但支持精确匹配多个作用域。
const app = require('loggercc')('app');
app.success('ok')